package Lambda;

import java.io.File;
import java.io.FileFilter;

/**
 * java8之后推出了一个新特性：lambda表达式
 * lambda表达式可以使用更精简的语法创建匿名内部类
 * 语法：
 * (参数列表)->{
 *     方法体
 * }
 * 需要注意的是：使用lambda表达式创建的匿名内部类在实现接口时要求该接口只能有一个抽象方法否则不能使用lambda表达式
 *
 */
public class LambdaDemo {
    public static void main(String[]args){
        FileFilter fileFilter1=(File file)->{
            return file.getName().startsWith("a");
        };
        //lambda表达式参数类型可以忽略不写
        FileFilter fileFilter=(file)->{
            return file.getName().startsWith(".");
        };
        //lambda表达式如果参数只有一个,()可以省略不写
        FileFilter fileFilter2=file->{
            return file.getName().startsWith("a");
        };
        //lambda表达式如果方法体中只有一行代码，则方法方法体的{}可以省略不写
        //并且如果这句代码包含了return时，return也必须不写
        FileFilter fileFilter3=file->file.getName().startsWith("a");
    }

}
